|
| #define | __FS_HAS_ENCRYPTION IS_ENABLED(CONFIG_F2FS_FS_ENCRYPTION) |
| |
| #define | f2fs_bug_on(sbi, condition) |
| |
| #define | F2FS_MOUNT_BG_GC 0x00000001 |
| |
| #define | F2FS_MOUNT_DISABLE_ROLL_FORWARD 0x00000002 |
| |
| #define | F2FS_MOUNT_DISCARD 0x00000004 |
| |
| #define | F2FS_MOUNT_NOHEAP 0x00000008 |
| |
| #define | F2FS_MOUNT_XATTR_USER 0x00000010 |
| |
| #define | F2FS_MOUNT_POSIX_ACL 0x00000020 |
| |
| #define | F2FS_MOUNT_DISABLE_EXT_IDENTIFY 0x00000040 |
| |
| #define | F2FS_MOUNT_INLINE_XATTR 0x00000080 |
| |
| #define | F2FS_MOUNT_INLINE_DATA 0x00000100 |
| |
| #define | F2FS_MOUNT_INLINE_DENTRY 0x00000200 |
| |
| #define | F2FS_MOUNT_FLUSH_MERGE 0x00000400 |
| |
| #define | F2FS_MOUNT_NOBARRIER 0x00000800 |
| |
| #define | F2FS_MOUNT_FASTBOOT 0x00001000 |
| |
| #define | F2FS_MOUNT_EXTENT_CACHE 0x00002000 |
| |
| #define | F2FS_MOUNT_FORCE_FG_GC 0x00004000 |
| |
| #define | F2FS_MOUNT_DATA_FLUSH 0x00008000 |
| |
| #define | F2FS_MOUNT_FAULT_INJECTION 0x00010000 |
| |
| #define | F2FS_MOUNT_ADAPTIVE 0x00020000 |
| |
| #define | F2FS_MOUNT_LFS 0x00040000 |
| |
| #define | F2FS_MOUNT_USRQUOTA 0x00080000 |
| |
| #define | F2FS_MOUNT_GRPQUOTA 0x00100000 |
| |
| #define | F2FS_MOUNT_PRJQUOTA 0x00200000 |
| |
| #define | F2FS_MOUNT_QUOTA 0x00400000 |
| |
| #define | F2FS_MOUNT_INLINE_XATTR_SIZE 0x00800000 |
| |
| #define | F2FS_MOUNT_RESERVE_ROOT 0x01000000 |
| |
| #define | F2FS_OPTION(sbi) ((sbi)->mount_opt) |
| |
| #define | clear_opt(sbi, option) (F2FS_OPTION(sbi).opt &= ~F2FS_MOUNT_##option) |
| |
| #define | set_opt(sbi, option) (F2FS_OPTION(sbi).opt |= F2FS_MOUNT_##option) |
| |
| #define | test_opt(sbi, option) (F2FS_OPTION(sbi).opt & F2FS_MOUNT_##option) |
| |
| #define | ver_after(a, b) |
| |
| #define | F2FS_FEATURE_ENCRYPT 0x0001 |
| |
| #define | F2FS_FEATURE_BLKZONED 0x0002 |
| |
| #define | F2FS_FEATURE_ATOMIC_WRITE 0x0004 |
| |
| #define | F2FS_FEATURE_EXTRA_ATTR 0x0008 |
| |
| #define | F2FS_FEATURE_PRJQUOTA 0x0010 |
| |
| #define | F2FS_FEATURE_INODE_CHKSUM 0x0020 |
| |
| #define | F2FS_FEATURE_FLEXIBLE_INLINE_XATTR 0x0040 |
| |
| #define | F2FS_FEATURE_QUOTA_INO 0x0080 |
| |
| #define | F2FS_FEATURE_INODE_CRTIME 0x0100 |
| |
| #define | F2FS_FEATURE_LOST_FOUND 0x0200 |
| |
| #define | F2FS_FEATURE_VERITY 0x0400 /* reserved */ |
| |
| #define | F2FS_HAS_FEATURE(sb, mask) ((F2FS_SB(sb)->raw_super->feature & cpu_to_le32(mask)) != 0) |
| |
| #define | F2FS_SET_FEATURE(sb, mask) (F2FS_SB(sb)->raw_super->feature |= cpu_to_le32(mask)) |
| |
| #define | F2FS_CLEAR_FEATURE(sb, mask) (F2FS_SB(sb)->raw_super->feature &= ~cpu_to_le32(mask)) |
| |
| #define | F2FS_DEF_RESUID 0 |
| |
| #define | F2FS_DEF_RESGID 0 |
| |
| #define | CP_UMOUNT 0x00000001 |
| |
| #define | CP_FASTBOOT 0x00000002 |
| |
| #define | CP_SYNC 0x00000004 |
| |
| #define | CP_RECOVERY 0x00000008 |
| |
| #define | CP_DISCARD 0x00000010 |
| |
| #define | CP_TRIMMED 0x00000020 |
| |
| #define | DEF_BATCHED_TRIM_SECTIONS 2048 |
| |
| #define | BATCHED_TRIM_SEGMENTS(sbi) (GET_SEG_FROM_SEC(sbi, SM_I(sbi)->trim_sections)) |
| |
| #define | BATCHED_TRIM_BLOCKS(sbi) (BATCHED_TRIM_SEGMENTS(sbi) << (sbi)->log_blocks_per_seg) |
| |
| #define | MAX_DISCARD_BLOCKS(sbi) BLKS_PER_SEC(sbi) |
| |
| #define | DEF_MAX_DISCARD_REQUEST 8 /* issue 8 discards per round */ |
| |
| #define | DEF_MIN_DISCARD_ISSUE_TIME 50 /* 50 ms, if exists */ |
| |
| #define | DEF_MAX_DISCARD_ISSUE_TIME 60000 /* 60 s, if no candidates */ |
| |
| #define | DEF_CP_INTERVAL 60 /* 60 secs */ |
| |
| #define | DEF_IDLE_INTERVAL 5 /* 5 secs */ |
| |
| #define | DEFAULT_DISCARD_GRANULARITY 16 |
| |
| #define | MAX_PLIST_NUM 512 |
| |
| #define | plist_idx(blk_num) |
| |
| #define | nats_in_cursum(jnl) (le16_to_cpu((jnl)->n_nats)) |
| |
| #define | sits_in_cursum(jnl) (le16_to_cpu((jnl)->n_sits)) |
| |
| #define | nat_in_journal(jnl, i) ((jnl)->nat_j.entries[i].ne) |
| |
| #define | nid_in_journal(jnl, i) ((jnl)->nat_j.entries[i].nid) |
| |
| #define | sit_in_journal(jnl, i) ((jnl)->sit_j.entries[i].se) |
| |
| #define | segno_in_journal(jnl, i) ((jnl)->sit_j.entries[i].segno) |
| |
| #define | MAX_NAT_JENTRIES(jnl) (NAT_JOURNAL_ENTRIES - nats_in_cursum(jnl)) |
| |
| #define | MAX_SIT_JENTRIES(jnl) (SIT_JOURNAL_ENTRIES - sits_in_cursum(jnl)) |
| |
| #define | F2FS_IOC_GETFLAGS FS_IOC_GETFLAGS |
| |
| #define | F2FS_IOC_SETFLAGS FS_IOC_SETFLAGS |
| |
| #define | F2FS_IOC_GETVERSION FS_IOC_GETVERSION |
| |
| #define | F2FS_IOCTL_MAGIC 0xf5 |
| |
| #define | F2FS_IOC_START_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 1) |
| |
| #define | F2FS_IOC_COMMIT_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 2) |
| |
| #define | F2FS_IOC_START_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 3) |
| |
| #define | F2FS_IOC_RELEASE_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 4) |
| |
| #define | F2FS_IOC_ABORT_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 5) |
| |
| #define | F2FS_IOC_GARBAGE_COLLECT _IOW(F2FS_IOCTL_MAGIC, 6, __u32) |
| |
| #define | F2FS_IOC_WRITE_CHECKPOINT _IO(F2FS_IOCTL_MAGIC, 7) |
| |
| #define | F2FS_IOC_DEFRAGMENT |
| |
| #define | F2FS_IOC_MOVE_RANGE |
| |
| #define | F2FS_IOC_FLUSH_DEVICE |
| |
| #define | F2FS_IOC_GARBAGE_COLLECT_RANGE |
| |
| #define | F2FS_IOC_GET_FEATURES _IOR(F2FS_IOCTL_MAGIC, 12, __u32) |
| |
| #define | F2FS_IOC_SET_PIN_FILE _IOW(F2FS_IOCTL_MAGIC, 13, __u32) |
| |
| #define | F2FS_IOC_GET_PIN_FILE _IOR(F2FS_IOCTL_MAGIC, 14, __u32) |
| |
| #define | F2FS_IOC_PRECACHE_EXTENTS _IO(F2FS_IOCTL_MAGIC, 15) |
| |
| #define | F2FS_IOC_SET_ENCRYPTION_POLICY FS_IOC_SET_ENCRYPTION_POLICY |
| |
| #define | F2FS_IOC_GET_ENCRYPTION_POLICY FS_IOC_GET_ENCRYPTION_POLICY |
| |
| #define | F2FS_IOC_GET_ENCRYPTION_PWSALT FS_IOC_GET_ENCRYPTION_PWSALT |
| |
| #define | F2FS_IOC_SHUTDOWN _IOR('X', 125, __u32) /* Shutdown */ |
| |
| #define | F2FS_GOING_DOWN_FULLSYNC 0x0 /* going down with full sync */ |
| |
| #define | F2FS_GOING_DOWN_METASYNC 0x1 /* going down with metadata */ |
| |
| #define | F2FS_GOING_DOWN_NOSYNC 0x2 /* going down */ |
| |
| #define | F2FS_GOING_DOWN_METAFLUSH 0x3 /* going down with meta flush */ |
| |
| #define | F2FS_IOC_FSGETXATTR FS_IOC_FSGETXATTR |
| |
| #define | F2FS_IOC_FSSETXATTR FS_IOC_FSSETXATTR |
| |
| #define | DEF_INLINE_RESERVED_SIZE 1 |
| |
| #define | DEF_MIN_INLINE_SIZE 1 |
| |
| #define | MAX_INLINE_DATA(inode) |
| |
| #define | NR_INLINE_DENTRY(inode) |
| |
| #define | INLINE_DENTRY_BITMAP_SIZE(inode) |
| |
| #define | INLINE_RESERVED_SIZE(inode) |
| |
| #define | XATTR_NODE_OFFSET |
| |
| #define | F2FS_LINK_MAX 0xffffffff /* maximum link count per file */ |
| |
| #define | MAX_DIR_RA_PAGES 4 /* maximum ra pages of dir */ |
| |
| #define | EXT_TREE_VEC_SIZE 64 |
| |
| #define | F2FS_MIN_EXTENT_LEN 64 /* minimum extent length */ |
| |
| #define | EXTENT_CACHE_SHRINK_NUMBER 128 |
| |
| #define | F2FS_MAP_NEW (1 << BH_New) |
| |
| #define | F2FS_MAP_MAPPED (1 << BH_Mapped) |
| |
| #define | F2FS_MAP_UNWRITTEN (1 << BH_Unwritten) |
| |
| #define | F2FS_MAP_FLAGS |
| |
| #define | FADVISE_COLD_BIT 0x01 |
| |
| #define | FADVISE_LOST_PINO_BIT 0x02 |
| |
| #define | FADVISE_ENCRYPT_BIT 0x04 |
| |
| #define | FADVISE_ENC_NAME_BIT 0x08 |
| |
| #define | FADVISE_KEEP_SIZE_BIT 0x10 |
| |
| #define | FADVISE_HOT_BIT 0x20 |
| |
| #define | FADVISE_VERITY_BIT 0x40 /* reserved */ |
| |
| #define | file_is_cold(inode) is_file(inode, FADVISE_COLD_BIT) |
| |
| #define | file_wrong_pino(inode) is_file(inode, FADVISE_LOST_PINO_BIT) |
| |
| #define | file_set_cold(inode) set_file(inode, FADVISE_COLD_BIT) |
| |
| #define | file_lost_pino(inode) set_file(inode, FADVISE_LOST_PINO_BIT) |
| |
| #define | file_clear_cold(inode) clear_file(inode, FADVISE_COLD_BIT) |
| |
| #define | file_got_pino(inode) clear_file(inode, FADVISE_LOST_PINO_BIT) |
| |
| #define | file_is_encrypt(inode) is_file(inode, FADVISE_ENCRYPT_BIT) |
| |
| #define | file_set_encrypt(inode) set_file(inode, FADVISE_ENCRYPT_BIT) |
| |
| #define | file_clear_encrypt(inode) clear_file(inode, FADVISE_ENCRYPT_BIT) |
| |
| #define | file_enc_name(inode) is_file(inode, FADVISE_ENC_NAME_BIT) |
| |
| #define | file_set_enc_name(inode) set_file(inode, FADVISE_ENC_NAME_BIT) |
| |
| #define | file_keep_isize(inode) is_file(inode, FADVISE_KEEP_SIZE_BIT) |
| |
| #define | file_set_keep_isize(inode) set_file(inode, FADVISE_KEEP_SIZE_BIT) |
| |
| #define | file_is_hot(inode) is_file(inode, FADVISE_HOT_BIT) |
| |
| #define | file_set_hot(inode) set_file(inode, FADVISE_HOT_BIT) |
| |
| #define | file_clear_hot(inode) clear_file(inode, FADVISE_HOT_BIT) |
| |
| #define | DEF_DIR_LEVEL 0 |
| |
| #define | NR_CURSEG_DATA_TYPE (3) |
| |
| #define | NR_CURSEG_NODE_TYPE (3) |
| |
| #define | NR_CURSEG_TYPE (NR_CURSEG_DATA_TYPE + NR_CURSEG_NODE_TYPE) |
| |
| #define | WB_DATA_TYPE(p) (__is_cp_guaranteed(p) ? F2FS_WB_CP_DATA : F2FS_WB_DATA) |
| |
| #define | PAGE_TYPE_OF_BIO(type) ((type) > META ? META : (type)) |
| |
| #define | is_read_io(rw) ((rw) == READ) |
| |
| #define | FDEV(i) (sbi->devs[i]) |
| |
| #define | RDEV(i) (raw_super->devs[i]) |
| |
| #define | DUMMY_ENCRYPTION_ENABLED(sbi) (0) |
| |
| #define | BD_PART_WRITTEN(s) |
| |
| #define | RAW_IS_INODE(p) ((p)->footer.nid == (p)->footer.ino) |
| |
| #define | F2FS_REG_FLMASK (~(FS_DIRSYNC_FL | FS_TOPDIR_FL)) |
| |
| #define | F2FS_OTHER_FLMASK (FS_NODUMP_FL | FS_NOATIME_FL) |
| |
| #define | F2FS_FL_INHERITED (FS_PROJINHERIT_FL) |
| |
| #define | get_inode_mode(i) |
| |
| #define | F2FS_TOTAL_EXTRA_ATTR_SIZE |
| |
| #define | F2FS_OLD_ATTRIBUTE_SIZE (offsetof(struct f2fs_inode, i_addr)) |
| |
| #define | F2FS_FITS_IN_INODE(f2fs_inode, extra_isize, field) |
| |
| #define | stat_inc_cp_count(si) do { } while (0) |
| |
| #define | stat_inc_bg_cp_count(si) do { } while (0) |
| |
| #define | stat_inc_call_count(si) do { } while (0) |
| |
| #define | stat_inc_bggc_count(si) do { } while (0) |
| |
| #define | stat_inc_dirty_inode(sbi, type) do { } while (0) |
| |
| #define | stat_dec_dirty_inode(sbi, type) do { } while (0) |
| |
| #define | stat_inc_total_hit(sb) do { } while (0) |
| |
| #define | stat_inc_rbtree_node_hit(sb) do { } while (0) |
| |
| #define | stat_inc_largest_node_hit(sbi) do { } while (0) |
| |
| #define | stat_inc_cached_node_hit(sbi) do { } while (0) |
| |
| #define | stat_inc_inline_xattr(inode) do { } while (0) |
| |
| #define | stat_dec_inline_xattr(inode) do { } while (0) |
| |
| #define | stat_inc_inline_inode(inode) do { } while (0) |
| |
| #define | stat_dec_inline_inode(inode) do { } while (0) |
| |
| #define | stat_inc_inline_dir(inode) do { } while (0) |
| |
| #define | stat_dec_inline_dir(inode) do { } while (0) |
| |
| #define | stat_inc_atomic_write(inode) do { } while (0) |
| |
| #define | stat_dec_atomic_write(inode) do { } while (0) |
| |
| #define | stat_update_max_atomic_write(inode) do { } while (0) |
| |
| #define | stat_inc_volatile_write(inode) do { } while (0) |
| |
| #define | stat_dec_volatile_write(inode) do { } while (0) |
| |
| #define | stat_update_max_volatile_write(inode) do { } while (0) |
| |
| #define | stat_inc_seg_type(sbi, curseg) do { } while (0) |
| |
| #define | stat_inc_block_count(sbi, curseg) do { } while (0) |
| |
| #define | stat_inc_inplace_blocks(sbi) do { } while (0) |
| |
| #define | stat_inc_seg_count(sbi, type, gc_type) do { } while (0) |
| |
| #define | stat_inc_tot_blk_count(si, blks) do { } while (0) |
| |
| #define | stat_inc_data_blk_count(sbi, blks, gc_type) do { } while (0) |
| |
| #define | stat_inc_node_blk_count(sbi, blks, gc_type) do { } while (0) |
| |
| #define | F2FS_FEATURE_FUNCS(name, flagname) |
| |
|
| static int | update_nats_in_cursum (struct f2fs_journal *journal, int i) |
| |
| static int | update_sits_in_cursum (struct f2fs_journal *journal, int i) |
| |
| static bool | __has_cursum_space (struct f2fs_journal *journal, int size, int type) |
| |
| static int | get_extra_isize (struct inode *inode) |
| |
| static int | get_inline_xattr_addrs (struct inode *inode) |
| |
| static void | make_dentry_ptr_block (struct inode *inode, struct f2fs_dentry_ptr *d, struct f2fs_dentry_block *t) |
| |
| static void | make_dentry_ptr_inline (struct inode *inode, struct f2fs_dentry_ptr *d, void *t) |
| |
| static void | get_extent_info (struct extent_info *ext, struct f2fs_extent *i_ext) |
| |
| static void | set_raw_extent (struct extent_info *ext, struct f2fs_extent *i_ext) |
| |
| static void | set_extent_info (struct extent_info *ei, unsigned int fofs, u32 blk, unsigned int len) |
| |
| static bool | __is_discard_mergeable (struct discard_info *back, struct discard_info *front) |
| |
| static bool | __is_discard_back_mergeable (struct discard_info *cur, struct discard_info *back) |
| |
| static bool | __is_discard_front_mergeable (struct discard_info *cur, struct discard_info *front) |
| |
| static bool | __is_extent_mergeable (struct extent_info *back, struct extent_info *front) |
| |
| static bool | __is_back_mergeable (struct extent_info *cur, struct extent_info *back) |
| |
| static bool | __is_front_mergeable (struct extent_info *cur, struct extent_info *front) |
| |
| void | f2fs_mark_inode_dirty_sync (struct inode *inode, bool sync) |
| |
| static void | __try_update_largest_extent (struct inode *inode, struct extent_tree *et, struct extent_node *en) |
| |
| static void | set_new_dnode (struct dnode_of_data *dn, struct inode *inode, struct page *ipage, struct page *npage, nid_t nid) |
| |
| static void | f2fs_update_time (struct f2fs_sb_info *sbi, int type) |
| |
| static bool | f2fs_time_over (struct f2fs_sb_info *sbi, int type) |
| |
| static bool | is_idle (struct f2fs_sb_info *sbi) |
| |
| static u32 | __f2fs_crc32 (struct f2fs_sb_info *sbi, u32 crc, const void *address, unsigned int length) |
| |
| static u32 | f2fs_crc32 (struct f2fs_sb_info *sbi, const void *address, unsigned int length) |
| |
| static bool | f2fs_crc_valid (struct f2fs_sb_info *sbi, __u32 blk_crc, void *buf, size_t buf_size) |
| |
| static u32 | f2fs_chksum (struct f2fs_sb_info *sbi, u32 crc, const void *address, unsigned int length) |
| |
| static struct f2fs_inode_info * | F2FS_I (struct inode *inode) |
| |
| static struct f2fs_sb_info * | F2FS_SB (struct super_block *sb) |
| |
| static struct f2fs_sb_info * | F2FS_I_SB (struct inode *inode) |
| |
| static struct f2fs_sb_info * | F2FS_M_SB (struct address_space *mapping) |
| |
| static struct f2fs_sb_info * | F2FS_P_SB (struct page *page) |
| |
| static struct f2fs_super_block * | F2FS_RAW_SUPER (struct f2fs_sb_info *sbi) |
| |
| static struct f2fs_checkpoint * | F2FS_CKPT (struct f2fs_sb_info *sbi) |
| |
| static struct f2fs_node * | F2FS_NODE (struct page *page) |
| |
| static struct f2fs_inode * | F2FS_INODE (struct page *page) |
| |
| static struct f2fs_nm_info * | NM_I (struct f2fs_sb_info *sbi) |
| |
| static struct f2fs_sm_info * | SM_I (struct f2fs_sb_info *sbi) |
| |
| static struct sit_info * | SIT_I (struct f2fs_sb_info *sbi) |
| |
| static struct free_segmap_info * | FREE_I (struct f2fs_sb_info *sbi) |
| |
| static struct dirty_seglist_info * | DIRTY_I (struct f2fs_sb_info *sbi) |
| |
| static struct address_space * | META_MAPPING (struct f2fs_sb_info *sbi) |
| |
| static struct address_space * | NODE_MAPPING (struct f2fs_sb_info *sbi) |
| |
| static bool | is_sbi_flag_set (struct f2fs_sb_info *sbi, unsigned int type) |
| |
| static void | set_sbi_flag (struct f2fs_sb_info *sbi, unsigned int type) |
| |
| static void | clear_sbi_flag (struct f2fs_sb_info *sbi, unsigned int type) |
| |
| static unsigned long long | cur_cp_version (struct f2fs_checkpoint *cp) |
| |
| static unsigned long | f2fs_qf_ino (struct super_block *sb, int type) |
| |
| static __u64 | cur_cp_crc (struct f2fs_checkpoint *cp) |
| |
| static bool | __is_set_ckpt_flags (struct f2fs_checkpoint *cp, unsigned int f) |
| |
| static bool | is_set_ckpt_flags (struct f2fs_sb_info *sbi, unsigned int f) |
| |
| static void | __set_ckpt_flags (struct f2fs_checkpoint *cp, unsigned int f) |
| |
| static void | set_ckpt_flags (struct f2fs_sb_info *sbi, unsigned int f) |
| |
| static void | __clear_ckpt_flags (struct f2fs_checkpoint *cp, unsigned int f) |
| |
| static void | clear_ckpt_flags (struct f2fs_sb_info *sbi, unsigned int f) |
| |
| static void | disable_nat_bits (struct f2fs_sb_info *sbi, bool lock) |
| |
| static bool | enabled_nat_bits (struct f2fs_sb_info *sbi, struct cp_control *cpc) |
| |
| static void | f2fs_lock_op (struct f2fs_sb_info *sbi) |
| |
| static int | f2fs_trylock_op (struct f2fs_sb_info *sbi) |
| |
| static void | f2fs_unlock_op (struct f2fs_sb_info *sbi) |
| |
| static void | f2fs_lock_all (struct f2fs_sb_info *sbi) |
| |
| static void | f2fs_unlock_all (struct f2fs_sb_info *sbi) |
| |
| static int | __get_cp_reason (struct f2fs_sb_info *sbi) |
| |
| static bool | __remain_node_summaries (int reason) |
| |
| static bool | __exist_node_summaries (struct f2fs_sb_info *sbi) |
| |
| static int | check_nid_range (struct f2fs_sb_info *sbi, nid_t nid) |
| |
| static int | F2FS_HAS_BLOCKS (struct inode *inode) |
| |
| static bool | f2fs_has_xattr_block (unsigned int ofs) |
| |
| static bool | __allow_reserved_blocks (struct f2fs_sb_info *sbi, struct inode *inode) |
| |
| static void | f2fs_i_blocks_write (struct inode *, block_t, bool, bool) |
| |
| static int | inc_valid_block_count (struct f2fs_sb_info *sbi, struct inode *inode, blkcnt_t *count) |
| |
| static void | dec_valid_block_count (struct f2fs_sb_info *sbi, struct inode *inode, block_t count) |
| |
| static void | inc_page_count (struct f2fs_sb_info *sbi, int count_type) |
| |
| static void | inode_inc_dirty_pages (struct inode *inode) |
| |
| static void | dec_page_count (struct f2fs_sb_info *sbi, int count_type) |
| |
| static void | inode_dec_dirty_pages (struct inode *inode) |
| |
| static s64 | get_pages (struct f2fs_sb_info *sbi, int count_type) |
| |
| static int | get_dirty_pages (struct inode *inode) |
| |
| static int | get_blocktype_secs (struct f2fs_sb_info *sbi, int block_type) |
| |
| static block_t | valid_user_blocks (struct f2fs_sb_info *sbi) |
| |
| static block_t | discard_blocks (struct f2fs_sb_info *sbi) |
| |
| static unsigned long | __bitmap_size (struct f2fs_sb_info *sbi, int flag) |
| |
| static block_t | __cp_payload (struct f2fs_sb_info *sbi) |
| |
| static void * | __bitmap_ptr (struct f2fs_sb_info *sbi, int flag) |
| |
| static block_t | __start_cp_addr (struct f2fs_sb_info *sbi) |
| |
| static block_t | __start_cp_next_addr (struct f2fs_sb_info *sbi) |
| |
| static void | __set_cp_next_pack (struct f2fs_sb_info *sbi) |
| |
| static block_t | __start_sum_addr (struct f2fs_sb_info *sbi) |
| |
| static int | inc_valid_node_count (struct f2fs_sb_info *sbi, struct inode *inode, bool is_inode) |
| |
| static void | dec_valid_node_count (struct f2fs_sb_info *sbi, struct inode *inode, bool is_inode) |
| |
| static unsigned int | valid_node_count (struct f2fs_sb_info *sbi) |
| |
| static void | inc_valid_inode_count (struct f2fs_sb_info *sbi) |
| |
| static void | dec_valid_inode_count (struct f2fs_sb_info *sbi) |
| |
| static s64 | valid_inode_count (struct f2fs_sb_info *sbi) |
| |
| static struct page * | f2fs_grab_cache_page (struct address_space *mapping, pgoff_t index, bool for_write) |
| |
| static struct page * | f2fs_pagecache_get_page (struct address_space *mapping, pgoff_t index, int fgp_flags, gfp_t gfp_mask) |
| |
| static void | f2fs_copy_page (struct page *src, struct page *dst) |
| |
| static void | f2fs_put_page (struct page *page, int unlock) |
| |
| static void | f2fs_put_dnode (struct dnode_of_data *dn) |
| |
| static struct kmem_cache * | f2fs_kmem_cache_create (const char *name, size_t size) |
| |
| static void * | f2fs_kmem_cache_alloc (struct kmem_cache *cachep, gfp_t flags) |
| |
| static struct bio * | f2fs_bio_alloc (struct f2fs_sb_info *sbi, int npages, bool no_fail) |
| |
| static void | f2fs_radix_tree_insert (struct radix_tree_root *root, unsigned long index, void *item) |
| |
| static bool | IS_INODE (struct page *page) |
| |
| static int | offset_in_addr (struct f2fs_inode *i) |
| |
| static __le32 * | blkaddr_in_node (struct f2fs_node *node) |
| |
| static int | f2fs_has_extra_attr (struct inode *inode) |
| |
| static block_t | datablock_addr (struct inode *inode, struct page *node_page, unsigned int offset) |
| |
| static int | f2fs_test_bit (unsigned int nr, char *addr) |
| |
| static void | f2fs_set_bit (unsigned int nr, char *addr) |
| |
| static void | f2fs_clear_bit (unsigned int nr, char *addr) |
| |
| static int | f2fs_test_and_set_bit (unsigned int nr, char *addr) |
| |
| static int | f2fs_test_and_clear_bit (unsigned int nr, char *addr) |
| |
| static void | f2fs_change_bit (unsigned int nr, char *addr) |
| |
| static __u32 | f2fs_mask_flags (umode_t mode, __u32 flags) |
| |
| static void | __mark_inode_dirty_flag (struct inode *inode, int flag, bool set) |
| |
| static void | set_inode_flag (struct inode *inode, int flag) |
| |
| static int | is_inode_flag_set (struct inode *inode, int flag) |
| |
| static void | clear_inode_flag (struct inode *inode, int flag) |
| |
| static void | set_acl_inode (struct inode *inode, umode_t mode) |
| |
| static void | f2fs_i_links_write (struct inode *inode, bool inc) |
| |
| static void | f2fs_i_size_write (struct inode *inode, loff_t i_size) |
| |
| static void | f2fs_i_depth_write (struct inode *inode, unsigned int depth) |
| |
| static void | f2fs_i_gc_failures_write (struct inode *inode, unsigned int count) |
| |
| static void | f2fs_i_xnid_write (struct inode *inode, nid_t xnid) |
| |
| static void | f2fs_i_pino_write (struct inode *inode, nid_t pino) |
| |
| static void | get_inline_info (struct inode *inode, struct f2fs_inode *ri) |
| |
| static void | set_raw_inline (struct inode *inode, struct f2fs_inode *ri) |
| |
| static int | f2fs_has_inline_xattr (struct inode *inode) |
| |
| static unsigned int | addrs_per_inode (struct inode *inode) |
| |
| static void * | inline_xattr_addr (struct inode *inode, struct page *page) |
| |
| static int | inline_xattr_size (struct inode *inode) |
| |
| static int | f2fs_has_inline_data (struct inode *inode) |
| |
| static int | f2fs_exist_data (struct inode *inode) |
| |
| static int | f2fs_has_inline_dots (struct inode *inode) |
| |
| static bool | f2fs_is_pinned_file (struct inode *inode) |
| |
| static bool | f2fs_is_atomic_file (struct inode *inode) |
| |
| static bool | f2fs_is_commit_atomic_write (struct inode *inode) |
| |
| static bool | f2fs_is_volatile_file (struct inode *inode) |
| |
| static bool | f2fs_is_first_block_written (struct inode *inode) |
| |
| static bool | f2fs_is_drop_cache (struct inode *inode) |
| |
| static void * | inline_data_addr (struct inode *inode, struct page *page) |
| |
| static int | f2fs_has_inline_dentry (struct inode *inode) |
| |
| static int | is_file (struct inode *inode, int type) |
| |
| static void | set_file (struct inode *inode, int type) |
| |
| static void | clear_file (struct inode *inode, int type) |
| |
| static bool | f2fs_skip_inode_update (struct inode *inode, int dsync) |
| |
| static bool | f2fs_readonly (struct super_block *sb) |
| |
| static bool | f2fs_cp_error (struct f2fs_sb_info *sbi) |
| |
| static bool | is_dot_dotdot (const struct qstr *str) |
| |
| static bool | f2fs_may_extent_tree (struct inode *inode) |
| |
| static void * | f2fs_kmalloc (struct f2fs_sb_info *sbi, size_t size, gfp_t flags) |
| |
| static void * | f2fs_kzalloc (struct f2fs_sb_info *sbi, size_t size, gfp_t flags) |
| |
| static void * | f2fs_kvmalloc (struct f2fs_sb_info *sbi, size_t size, gfp_t flags) |
| |
| static void * | f2fs_kvzalloc (struct f2fs_sb_info *sbi, size_t size, gfp_t flags) |
| |
| static void | f2fs_reset_iostat (struct f2fs_sb_info *sbi) |
| |
| static void | f2fs_update_iostat (struct f2fs_sb_info *sbi, enum iostat_type type, unsigned long long io_bytes) |
| |
| int | f2fs_sync_file (struct file *file, loff_t start, loff_t end, int datasync) |
| |
| void | truncate_data_blocks (struct dnode_of_data *dn) |
| |
| int | truncate_blocks (struct inode *inode, u64 from, bool lock) |
| |
| int | f2fs_truncate (struct inode *inode) |
| |
| int | f2fs_getattr (const struct path *path, struct kstat *stat, u32 request_mask, unsigned int flags) |
| |
| int | f2fs_setattr (struct dentry *dentry, struct iattr *attr) |
| |
| int | truncate_hole (struct inode *inode, pgoff_t pg_start, pgoff_t pg_end) |
| |
| void | truncate_data_blocks_range (struct dnode_of_data *dn, int count) |
| |
| int | f2fs_precache_extents (struct inode *inode) |
| |
| long | f2fs_ioctl (struct file *filp, unsigned int cmd, unsigned long arg) |
| |
| long | f2fs_compat_ioctl (struct file *file, unsigned int cmd, unsigned long arg) |
| |
| int | f2fs_pin_file_control (struct inode *inode, bool inc) |
| |
| void | f2fs_set_inode_flags (struct inode *inode) |
| |
| bool | f2fs_inode_chksum_verify (struct f2fs_sb_info *sbi, struct page *page) |
| |
| void | f2fs_inode_chksum_set (struct f2fs_sb_info *sbi, struct page *page) |
| |
| struct inode * | f2fs_iget (struct super_block *sb, unsigned long ino) |
| |
| struct inode * | f2fs_iget_retry (struct super_block *sb, unsigned long ino) |
| |
| int | try_to_free_nats (struct f2fs_sb_info *sbi, int nr_shrink) |
| |
| void | update_inode (struct inode *inode, struct page *node_page) |
| |
| void | update_inode_page (struct inode *inode) |
| |
| int | f2fs_write_inode (struct inode *inode, struct writeback_control *wbc) |
| |
| void | f2fs_evict_inode (struct inode *inode) |
| |
| void | handle_failed_inode (struct inode *inode) |
| |
| int | update_extension_list (struct f2fs_sb_info *sbi, const char *name, bool hot, bool set) |
| |
| struct dentry * | f2fs_get_parent (struct dentry *child) |
| |
| void | set_de_type (struct f2fs_dir_entry *de, umode_t mode) |
| |
| unsigned char | get_de_type (struct f2fs_dir_entry *de) |
| |
| struct f2fs_dir_entry * | find_target_dentry (struct fscrypt_name *fname, f2fs_hash_t namehash, int *max_slots, struct f2fs_dentry_ptr *d) |
| |
| int | f2fs_fill_dentries (struct dir_context *ctx, struct f2fs_dentry_ptr *d, unsigned int start_pos, struct fscrypt_str *fstr) |
| |
| void | do_make_empty_dir (struct inode *inode, struct inode *parent, struct f2fs_dentry_ptr *d) |
| |
| struct page * | init_inode_metadata (struct inode *inode, struct inode *dir, const struct qstr *new_name, const struct qstr *orig_name, struct page *dpage) |
| |
| void | update_parent_metadata (struct inode *dir, struct inode *inode, unsigned int current_depth) |
| |
| int | room_for_filename (const void *bitmap, int slots, int max_slots) |
| |
| void | f2fs_drop_nlink (struct inode *dir, struct inode *inode) |
| |
| struct f2fs_dir_entry * | __f2fs_find_entry (struct inode *dir, struct fscrypt_name *fname, struct page **res_page) |
| |
| struct f2fs_dir_entry * | f2fs_find_entry (struct inode *dir, const struct qstr *child, struct page **res_page) |
| |
| struct f2fs_dir_entry * | f2fs_parent_dir (struct inode *dir, struct page **p) |
| |
| ino_t | f2fs_inode_by_name (struct inode *dir, const struct qstr *qstr, struct page **page) |
| |
| void | f2fs_set_link (struct inode *dir, struct f2fs_dir_entry *de, struct page *page, struct inode *inode) |
| |
| void | f2fs_update_dentry (nid_t ino, umode_t mode, struct f2fs_dentry_ptr *d, const struct qstr *name, f2fs_hash_t name_hash, unsigned int bit_pos) |
| |
| int | f2fs_add_regular_entry (struct inode *dir, const struct qstr *new_name, const struct qstr *orig_name, struct inode *inode, nid_t ino, umode_t mode) |
| |
| int | __f2fs_do_add_link (struct inode *dir, struct fscrypt_name *fname, struct inode *inode, nid_t ino, umode_t mode) |
| |
| int | __f2fs_add_link (struct inode *dir, const struct qstr *name, struct inode *inode, nid_t ino, umode_t mode) |
| |
| void | f2fs_delete_entry (struct f2fs_dir_entry *dentry, struct page *page, struct inode *dir, struct inode *inode) |
| |
| int | f2fs_do_tmpfile (struct inode *inode, struct inode *dir) |
| |
| bool | f2fs_empty_dir (struct inode *dir) |
| |
| static int | f2fs_add_link (struct dentry *dentry, struct inode *inode) |
| |
| int | f2fs_inode_dirtied (struct inode *inode, bool sync) |
| |
| void | f2fs_inode_synced (struct inode *inode) |
| |
| int | f2fs_enable_quota_files (struct f2fs_sb_info *sbi, bool rdonly) |
| |
| void | f2fs_quota_off_umount (struct super_block *sb) |
| |
| int | f2fs_commit_super (struct f2fs_sb_info *sbi, bool recover) |
| |
| int | f2fs_sync_fs (struct super_block *sb, int sync) |
| |
| | __printf (3, 4) void f2fs_msg(struct super_block *sb |
| |
| const char const char int | sanity_check_ckpt (struct f2fs_sb_info *sbi) |
| |
| f2fs_hash_t | f2fs_dentry_hash (const struct qstr *name_info, struct fscrypt_name *fname) |
| |
| bool | available_free_memory (struct f2fs_sb_info *sbi, int type) |
| |
| int | need_dentry_mark (struct f2fs_sb_info *sbi, nid_t nid) |
| |
| bool | is_checkpointed_node (struct f2fs_sb_info *sbi, nid_t nid) |
| |
| bool | need_inode_block_update (struct f2fs_sb_info *sbi, nid_t ino) |
| |
| void | get_node_info (struct f2fs_sb_info *sbi, nid_t nid, struct node_info *ni) |
| |
| pgoff_t | get_next_page_offset (struct dnode_of_data *dn, pgoff_t pgofs) |
| |
| int | get_dnode_of_data (struct dnode_of_data *dn, pgoff_t index, int mode) |
| |
| int | truncate_inode_blocks (struct inode *inode, pgoff_t from) |
| |
| int | truncate_xattr_node (struct inode *inode) |
| |
| int | wait_on_node_pages_writeback (struct f2fs_sb_info *sbi, nid_t ino) |
| |
| int | remove_inode_page (struct inode *inode) |
| |
| struct page * | new_inode_page (struct inode *inode) |
| |
| struct page * | new_node_page (struct dnode_of_data *dn, unsigned int ofs) |
| |
| void | ra_node_page (struct f2fs_sb_info *sbi, nid_t nid) |
| |
| struct page * | get_node_page (struct f2fs_sb_info *sbi, pgoff_t nid) |
| |
| struct page * | get_node_page_ra (struct page *parent, int start) |
| |
| void | move_node_page (struct page *node_page, int gc_type) |
| |
| int | fsync_node_pages (struct f2fs_sb_info *sbi, struct inode *inode, struct writeback_control *wbc, bool atomic) |
| |
| int | sync_node_pages (struct f2fs_sb_info *sbi, struct writeback_control *wbc, bool do_balance, enum iostat_type io_type) |
| |
| void | build_free_nids (struct f2fs_sb_info *sbi, bool sync, bool mount) |
| |
| bool | alloc_nid (struct f2fs_sb_info *sbi, nid_t *nid) |
| |
| void | alloc_nid_done (struct f2fs_sb_info *sbi, nid_t nid) |
| |
| void | alloc_nid_failed (struct f2fs_sb_info *sbi, nid_t nid) |
| |
| int | try_to_free_nids (struct f2fs_sb_info *sbi, int nr_shrink) |
| |
| void | recover_inline_xattr (struct inode *inode, struct page *page) |
| |
| int | recover_xattr_data (struct inode *inode, struct page *page) |
| |
| int | recover_inode_page (struct f2fs_sb_info *sbi, struct page *page) |
| |
| void | restore_node_summary (struct f2fs_sb_info *sbi, unsigned int segno, struct f2fs_summary_block *sum) |
| |
| void | flush_nat_entries (struct f2fs_sb_info *sbi, struct cp_control *cpc) |
| |
| int | build_node_manager (struct f2fs_sb_info *sbi) |
| |
| void | destroy_node_manager (struct f2fs_sb_info *sbi) |
| |
| int __init | create_node_manager_caches (void) |
| |
| void | destroy_node_manager_caches (void) |
| |
| bool | need_SSR (struct f2fs_sb_info *sbi) |
| |
| void | register_inmem_page (struct inode *inode, struct page *page) |
| |
| void | drop_inmem_pages_all (struct f2fs_sb_info *sbi) |
| |
| void | drop_inmem_pages (struct inode *inode) |
| |
| void | drop_inmem_page (struct inode *inode, struct page *page) |
| |
| int | commit_inmem_pages (struct inode *inode) |
| |
| void | f2fs_balance_fs (struct f2fs_sb_info *sbi, bool need) |
| |
| void | f2fs_balance_fs_bg (struct f2fs_sb_info *sbi) |
| |
| int | f2fs_issue_flush (struct f2fs_sb_info *sbi, nid_t ino) |
| |
| int | create_flush_cmd_control (struct f2fs_sb_info *sbi) |
| |
| int | f2fs_flush_device_cache (struct f2fs_sb_info *sbi) |
| |
| void | destroy_flush_cmd_control (struct f2fs_sb_info *sbi, bool free) |
| |
| void | invalidate_blocks (struct f2fs_sb_info *sbi, block_t addr) |
| |
| bool | is_checkpointed_data (struct f2fs_sb_info *sbi, block_t blkaddr) |
| |
| void | init_discard_policy (struct discard_policy *dpolicy, int discard_type, unsigned int granularity) |
| |
| void | drop_discard_cmd (struct f2fs_sb_info *sbi) |
| |
| void | stop_discard_thread (struct f2fs_sb_info *sbi) |
| |
| bool | f2fs_wait_discard_bios (struct f2fs_sb_info *sbi) |
| |
| void | clear_prefree_segments (struct f2fs_sb_info *sbi, struct cp_control *cpc) |
| |
| void | release_discard_addrs (struct f2fs_sb_info *sbi) |
| |
| int | npages_for_summary_flush (struct f2fs_sb_info *sbi, bool for_ra) |
| |
| void | allocate_new_segments (struct f2fs_sb_info *sbi) |
| |
| int | f2fs_trim_fs (struct f2fs_sb_info *sbi, struct fstrim_range *range) |
| |
| bool | exist_trim_candidates (struct f2fs_sb_info *sbi, struct cp_control *cpc) |
| |
| struct page * | get_sum_page (struct f2fs_sb_info *sbi, unsigned int segno) |
| |
| void | update_meta_page (struct f2fs_sb_info *sbi, void *src, block_t blk_addr) |
| |
| void | write_meta_page (struct f2fs_sb_info *sbi, struct page *page, enum iostat_type io_type) |
| |
| void | write_node_page (unsigned int nid, struct f2fs_io_info *fio) |
| |
| void | write_data_page (struct dnode_of_data *dn, struct f2fs_io_info *fio) |
| |
| int | rewrite_data_page (struct f2fs_io_info *fio) |
| |
| void | __f2fs_replace_block (struct f2fs_sb_info *sbi, struct f2fs_summary *sum, block_t old_blkaddr, block_t new_blkaddr, bool recover_curseg, bool recover_newaddr) |
| |
| void | f2fs_replace_block (struct f2fs_sb_info *sbi, struct dnode_of_data *dn, block_t old_addr, block_t new_addr, unsigned char version, bool recover_curseg, bool recover_newaddr) |
| |
| void | allocate_data_block (struct f2fs_sb_info *sbi, struct page *page, block_t old_blkaddr, block_t *new_blkaddr, struct f2fs_summary *sum, int type, struct f2fs_io_info *fio, bool add_list) |
| |
| void | f2fs_wait_on_page_writeback (struct page *page, enum page_type type, bool ordered) |
| |
| void | f2fs_wait_on_block_writeback (struct f2fs_sb_info *sbi, block_t blkaddr) |
| |
| void | write_data_summaries (struct f2fs_sb_info *sbi, block_t start_blk) |
| |
| void | write_node_summaries (struct f2fs_sb_info *sbi, block_t start_blk) |
| |
| int | lookup_journal_in_cursum (struct f2fs_journal *journal, int type, unsigned int val, int alloc) |
| |
| void | flush_sit_entries (struct f2fs_sb_info *sbi, struct cp_control *cpc) |
| |
| int | build_segment_manager (struct f2fs_sb_info *sbi) |
| |
| void | destroy_segment_manager (struct f2fs_sb_info *sbi) |
| |
| int __init | create_segment_manager_caches (void) |
| |
| void | destroy_segment_manager_caches (void) |
| |
| int | rw_hint_to_seg_type (enum rw_hint hint) |
| |
| enum rw_hint | io_type_to_rw_hint (struct f2fs_sb_info *sbi, enum page_type type, enum temp_type temp) |
| |
| void | f2fs_stop_checkpoint (struct f2fs_sb_info *sbi, bool end_io) |
| |
| struct page * | grab_meta_page (struct f2fs_sb_info *sbi, pgoff_t index) |
| |
| struct page * | get_meta_page (struct f2fs_sb_info *sbi, pgoff_t index) |
| |
| struct page * | get_tmp_page (struct f2fs_sb_info *sbi, pgoff_t index) |
| |
| bool | is_valid_blkaddr (struct f2fs_sb_info *sbi, block_t blkaddr, int type) |
| |
| int | ra_meta_pages (struct f2fs_sb_info *sbi, block_t start, int nrpages, int type, bool sync) |
| |
| void | ra_meta_pages_cond (struct f2fs_sb_info *sbi, pgoff_t index) |
| |
| long | sync_meta_pages (struct f2fs_sb_info *sbi, enum page_type type, long nr_to_write, enum iostat_type io_type) |
| |
| void | add_ino_entry (struct f2fs_sb_info *sbi, nid_t ino, int type) |
| |
| void | remove_ino_entry (struct f2fs_sb_info *sbi, nid_t ino, int type) |
| |
| void | release_ino_entry (struct f2fs_sb_info *sbi, bool all) |
| |
| bool | exist_written_data (struct f2fs_sb_info *sbi, nid_t ino, int mode) |
| |
| void | set_dirty_device (struct f2fs_sb_info *sbi, nid_t ino, unsigned int devidx, int type) |
| |
| bool | is_dirty_device (struct f2fs_sb_info *sbi, nid_t ino, unsigned int devidx, int type) |
| |
| int | f2fs_sync_inode_meta (struct f2fs_sb_info *sbi) |
| |
| int | acquire_orphan_inode (struct f2fs_sb_info *sbi) |
| |
| void | release_orphan_inode (struct f2fs_sb_info *sbi) |
| |
| void | add_orphan_inode (struct inode *inode) |
| |
| void | remove_orphan_inode (struct f2fs_sb_info *sbi, nid_t ino) |
| |
| int | recover_orphan_inodes (struct f2fs_sb_info *sbi) |
| |
| int | get_valid_checkpoint (struct f2fs_sb_info *sbi) |
| |
| void | update_dirty_page (struct inode *inode, struct page *page) |
| |
| void | remove_dirty_inode (struct inode *inode) |
| |
| int | sync_dirty_inodes (struct f2fs_sb_info *sbi, enum inode_type type) |
| |
| int | write_checkpoint (struct f2fs_sb_info *sbi, struct cp_control *cpc) |
| |
| void | init_ino_entry_info (struct f2fs_sb_info *sbi) |
| |
| int __init | create_checkpoint_caches (void) |
| |
| void | destroy_checkpoint_caches (void) |
| |
| void | f2fs_submit_merged_write (struct f2fs_sb_info *sbi, enum page_type type) |
| |
| void | f2fs_submit_merged_write_cond (struct f2fs_sb_info *sbi, struct inode *inode, nid_t ino, pgoff_t idx, enum page_type type) |
| |
| void | f2fs_flush_merged_writes (struct f2fs_sb_info *sbi) |
| |
| int | f2fs_submit_page_bio (struct f2fs_io_info *fio) |
| |
| int | f2fs_submit_page_write (struct f2fs_io_info *fio) |
| |
| struct block_device * | f2fs_target_device (struct f2fs_sb_info *sbi, block_t blk_addr, struct bio *bio) |
| |
| int | f2fs_target_device_index (struct f2fs_sb_info *sbi, block_t blkaddr) |
| |
| void | set_data_blkaddr (struct dnode_of_data *dn) |
| |
| void | f2fs_update_data_blkaddr (struct dnode_of_data *dn, block_t blkaddr) |
| |
| int | reserve_new_blocks (struct dnode_of_data *dn, blkcnt_t count) |
| |
| int | reserve_new_block (struct dnode_of_data *dn) |
| |
| int | f2fs_get_block (struct dnode_of_data *dn, pgoff_t index) |
| |
| int | f2fs_preallocate_blocks (struct kiocb *iocb, struct iov_iter *from) |
| |
| int | f2fs_reserve_block (struct dnode_of_data *dn, pgoff_t index) |
| |
| struct page * | get_read_data_page (struct inode *inode, pgoff_t index, int op_flags, bool for_write) |
| |
| struct page * | find_data_page (struct inode *inode, pgoff_t index) |
| |
| struct page * | get_lock_data_page (struct inode *inode, pgoff_t index, bool for_write) |
| |
| struct page * | get_new_data_page (struct inode *inode, struct page *ipage, pgoff_t index, bool new_i_size) |
| |
| int | do_write_data_page (struct f2fs_io_info *fio) |
| |
| int | f2fs_map_blocks (struct inode *inode, struct f2fs_map_blocks *map, int create, int flag) |
| |
| int | f2fs_fiemap (struct inode *inode, struct fiemap_extent_info *fieinfo, u64 start, u64 len) |
| |
| bool | should_update_inplace (struct inode *inode, struct f2fs_io_info *fio) |
| |
| bool | should_update_outplace (struct inode *inode, struct f2fs_io_info *fio) |
| |
| void | f2fs_set_page_dirty_nobuffers (struct page *page) |
| |
| int | __f2fs_write_data_pages (struct address_space *mapping, struct writeback_control *wbc, enum iostat_type io_type) |
| |
| void | f2fs_invalidate_page (struct page *page, unsigned int offset, unsigned int length) |
| |
| int | f2fs_release_page (struct page *page, gfp_t wait) |
| |
| bool | f2fs_overwrite_io (struct inode *inode, loff_t pos, size_t len) |
| |
| int | start_gc_thread (struct f2fs_sb_info *sbi) |
| |
| void | stop_gc_thread (struct f2fs_sb_info *sbi) |
| |
| block_t | start_bidx_of_node (unsigned int node_ofs, struct inode *inode) |
| |
| int | f2fs_gc (struct f2fs_sb_info *sbi, bool sync, bool background, unsigned int segno) |
| |
| void | build_gc_manager (struct f2fs_sb_info *sbi) |
| |
| int | recover_fsync_data (struct f2fs_sb_info *sbi, bool check_only) |
| |
| bool | space_for_roll_forward (struct f2fs_sb_info *sbi) |
| |
| static int | f2fs_build_stats (struct f2fs_sb_info *sbi) |
| |
| static void | f2fs_destroy_stats (struct f2fs_sb_info *sbi) |
| |
| static int __init | f2fs_create_root_stats (void) |
| |
| static void | f2fs_destroy_root_stats (void) |
| |
| bool | f2fs_may_inline_data (struct inode *inode) |
| |
| bool | f2fs_may_inline_dentry (struct inode *inode) |
| |
| void | read_inline_data (struct page *page, struct page *ipage) |
| |
| void | truncate_inline_inode (struct inode *inode, struct page *ipage, u64 from) |
| |
| int | f2fs_read_inline_data (struct inode *inode, struct page *page) |
| |
| int | f2fs_convert_inline_page (struct dnode_of_data *dn, struct page *page) |
| |
| int | f2fs_convert_inline_inode (struct inode *inode) |
| |
| int | f2fs_write_inline_data (struct inode *inode, struct page *page) |
| |
| bool | recover_inline_data (struct inode *inode, struct page *npage) |
| |
| struct f2fs_dir_entry * | find_in_inline_dir (struct inode *dir, struct fscrypt_name *fname, struct page **res_page) |
| |
| int | make_empty_inline_dir (struct inode *inode, struct inode *parent, struct page *ipage) |
| |
| int | f2fs_add_inline_entry (struct inode *dir, const struct qstr *new_name, const struct qstr *orig_name, struct inode *inode, nid_t ino, umode_t mode) |
| |
| void | f2fs_delete_inline_entry (struct f2fs_dir_entry *dentry, struct page *page, struct inode *dir, struct inode *inode) |
| |
| bool | f2fs_empty_inline_dir (struct inode *dir) |
| |
| int | f2fs_read_inline_dir (struct file *file, struct dir_context *ctx, struct fscrypt_str *fstr) |
| |
| int | f2fs_inline_data_fiemap (struct inode *inode, struct fiemap_extent_info *fieinfo, __u64 start, __u64 len) |
| |
| unsigned long | f2fs_shrink_count (struct shrinker *shrink, struct shrink_control *sc) |
| |
| unsigned long | f2fs_shrink_scan (struct shrinker *shrink, struct shrink_control *sc) |
| |
| void | f2fs_join_shrinker (struct f2fs_sb_info *sbi) |
| |
| void | f2fs_leave_shrinker (struct f2fs_sb_info *sbi) |
| |
| struct rb_entry * | __lookup_rb_tree (struct rb_root *root, struct rb_entry *cached_re, unsigned int ofs) |
| |
| struct rb_node ** | __lookup_rb_tree_for_insert (struct f2fs_sb_info *sbi, struct rb_root *root, struct rb_node **parent, unsigned int ofs) |
| |
| struct rb_entry * | __lookup_rb_tree_ret (struct rb_root *root, struct rb_entry *cached_re, unsigned int ofs, struct rb_entry **prev_entry, struct rb_entry **next_entry, struct rb_node ***insert_p, struct rb_node **insert_parent, bool force) |
| |
| bool | __check_rb_tree_consistence (struct f2fs_sb_info *sbi, struct rb_root *root) |
| |
| unsigned int | f2fs_shrink_extent_tree (struct f2fs_sb_info *sbi, int nr_shrink) |
| |
| bool | f2fs_init_extent_tree (struct inode *inode, struct f2fs_extent *i_ext) |
| |
| void | f2fs_drop_extent_tree (struct inode *inode) |
| |
| unsigned int | f2fs_destroy_extent_node (struct inode *inode) |
| |
| void | f2fs_destroy_extent_tree (struct inode *inode) |
| |
| bool | f2fs_lookup_extent_cache (struct inode *inode, pgoff_t pgofs, struct extent_info *ei) |
| |
| void | f2fs_update_extent_cache (struct dnode_of_data *dn) |
| |
| void | f2fs_update_extent_cache_range (struct dnode_of_data *dn, pgoff_t fofs, block_t blkaddr, unsigned int len) |
| |
| void | init_extent_cache_info (struct f2fs_sb_info *sbi) |
| |
| int __init | create_extent_cache (void) |
| |
| void | destroy_extent_cache (void) |
| |
| int __init | f2fs_init_sysfs (void) |
| |
| void | f2fs_exit_sysfs (void) |
| |
| int | f2fs_register_sysfs (struct f2fs_sb_info *sbi) |
| |
| void | f2fs_unregister_sysfs (struct f2fs_sb_info *sbi) |
| |
| static bool | f2fs_encrypted_inode (struct inode *inode) |
| |
| static bool | f2fs_encrypted_file (struct inode *inode) |
| |
| static void | f2fs_set_encrypted_inode (struct inode *inode) |
| |
| static bool | f2fs_bio_encrypted (struct bio *bio) |
| |
| | F2FS_FEATURE_FUNCS (encrypt, ENCRYPT) |
| |
| | F2FS_FEATURE_FUNCS (blkzoned, BLKZONED) |
| |
| | F2FS_FEATURE_FUNCS (extra_attr, EXTRA_ATTR) |
| |
| | F2FS_FEATURE_FUNCS (project_quota, PRJQUOTA) |
| |
| | F2FS_FEATURE_FUNCS (inode_chksum, INODE_CHKSUM) |
| |
| | F2FS_FEATURE_FUNCS (flexible_inline_xattr, FLEXIBLE_INLINE_XATTR) |
| |
| | F2FS_FEATURE_FUNCS (quota_ino, QUOTA_INO) |
| |
| | F2FS_FEATURE_FUNCS (inode_crtime, INODE_CRTIME) |
| |
| | F2FS_FEATURE_FUNCS (lost_found, LOST_FOUND) |
| |
| static bool | f2fs_discard_en (struct f2fs_sb_info *sbi) |
| |
| static void | set_opt_mode (struct f2fs_sb_info *sbi, unsigned int mt) |
| |
| static bool | f2fs_may_encrypt (struct inode *inode) |
| |
| static bool | f2fs_force_buffered_io (struct inode *inode, int rw) |
| |